package com.zwy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zwy.domain.dto.FavoriteIsCheckDTO;
import com.zwy.domain.dto.SearchFavoriteDTO;
import com.zwy.domain.entity.Favorite;
import com.zwy.domain.response.ResponseResult;
import com.zwy.domain.vo.FavoriteListVO;

import java.util.List;

/**
 * @author zwy
 * @version 1.0
 * @description: FavoriteService
 * @date 2025/9/20 14:44
 */
public interface FavoriteService extends IService<Favorite> {
    /**
     * 是否已经收藏
     *
     * @param type   收藏类型
     * @param typeId 收藏id
     * @return 是否已经收藏
     */
    Boolean isFavorite(Integer type, Integer typeId);
    /**
     * 收藏文章
     *
     * @param type   收藏类型
     * @param typeId 收藏id
     * @return 收藏结果
     */
    ResponseResult<Void> userFavorite(Integer type, Long typeId);

    /**
     * 取消收藏文章
     *
     * @param type   收藏类型
     * @param typeId 收藏id
     * @return 取消收藏结果
     */
    ResponseResult<Void> cancelFavorite(Integer type, Integer typeId);



    /**
     * 后台收藏列表
     * @return 结果
     */
    List<FavoriteListVO> getBackFavoriteList(SearchFavoriteDTO searchDTO);

    /**
     * 是否通过收藏
     * @param isCheckDTO 是否通过
     * @return 是否成功
     */
    ResponseResult<Void> isCheckFavorite(FavoriteIsCheckDTO isCheckDTO);

    /**
     * 删除收藏
     * @param ids id 列表
     * @return 是否成功
     */
    ResponseResult<Void> deleteFavorite(List<Long> ids);
}
